/*      */ package com.newcrm.util;
/*      */ 
/*      */ import com.newcrm.bean.ExtInfo;
/*      */ import com.newcrm.bean.Group;
/*      */ import com.newcrm.bean.User;
/*      */ import java.io.BufferedReader;
/*      */ import java.io.File;
/*      */ import java.io.FileNotFoundException;
/*      */ import java.io.FileReader;
/*      */ import java.io.IOException;
/*      */ import java.io.PrintStream;
/*      */ import java.io.UnsupportedEncodingException;
/*      */ import java.math.BigDecimal;
/*      */ import java.net.InetAddress;
/*      */ import java.net.URLDecoder;
/*      */ import java.net.UnknownHostException;
/*      */ import java.text.ParseException;
/*      */ import java.text.SimpleDateFormat;
/*      */ import java.util.ArrayList;
/*      */ import java.util.Calendar;
/*      */ import java.util.Date;
/*      */ import java.util.GregorianCalendar;
/*      */ import java.util.HashMap;
/*      */ import java.util.Iterator;
/*      */ import java.util.List;
/*      */ import java.util.Map;
/*      */ import java.util.Random;
/*      */ import java.util.regex.Matcher;
/*      */ import java.util.regex.Pattern;
/*      */ import javax.servlet.http.Cookie;
/*      */ import javax.servlet.http.HttpServletRequest;
/*      */ import javax.servlet.http.HttpSession;
/*      */ import net.sf.jmimemagic.Magic;
/*      */ import net.sf.jmimemagic.MagicException;
/*      */ import net.sf.jmimemagic.MagicMatch;
/*      */ import net.sf.jmimemagic.MagicMatchNotFoundException;
/*      */ import net.sf.jmimemagic.MagicParseException;
/*      */ import net.sf.json.JSONException;
/*      */ import net.sf.json.JSONObject;
/*      */ import org.apache.log4j.Logger;
/*      */ 
/*      */ public class Util
/*      */ {
/*   46 */   private static Logger logger = Logger.getLogger(Util.class.getName());
/*      */ 
/*  313 */   private static final char[] c = { '<', '>', '&', '"' };
/*  314 */   private static final String[] expansion = { "&lt;", "&gt;", "&amp;", 
/*  315 */     "&quot;" };
/*      */   private static final int fONE_DAY = 1;
/*      */   private static final int fTWO_AM = 2;
/*      */   private static final int fTHREE_AM = 3;
/*      */   private static final int fFOUR_AM = 4;
/*      */   private static final int fZERO_MINUTES = 0;
/*      */ 
/*      */   public static String getURLParameter(String value)
/*      */   {
/*   54 */     if (value == null) {
/*   55 */       return null;
/*      */     }
/*      */     try
/*      */     {
/*   59 */       return new String(value.trim().getBytes("ISO-8859-1"), "utf-8"); } catch (UnsupportedEncodingException e) {
/*      */     }
/*   61 */     return null;
//                return value;
/*      */   }
/*      */ 
/*      */   public static int getURLIntParameter(String value)
/*      */   {
/*   71 */     if (value == null)
/*   72 */       return 0;
/*      */     try
/*      */     {
/*   75 */       return Integer.parseInt(value); } catch (NumberFormatException e) {
/*      */     }
/*   77 */     return 0;
/*      */   }
/*      */ 
/*      */   public static float getURLFloatParameter(String value)
/*      */   {
/*   87 */     if (value == null)
/*   88 */       return 0.0F;
/*      */     try
/*      */     {
/*   91 */       return Float.parseFloat(value); } catch (NumberFormatException e) {
/*      */     }
/*   93 */     return 0.0F;
/*      */   }
/*      */ 
/*      */   public static boolean isBlank(String str)
/*      */   {
/*      */     int strLen;
/*  104 */     if ((str == null) || ((strLen = str.length()) == 0))
/*  105 */       return true;
/*  107 */     for (int i = 0; i < strLen; i++) {
/*  108 */       if (!Character.isWhitespace(str.charAt(i))) {
/*  109 */         return false;
/*      */       }
/*      */     }
/*  112 */     return true;
/*      */   }
/*      */ 
/*      */   public static String defaultString(String str)
/*      */   {
/*  121 */     return str == null ? "" : str;
/*      */   }
/*      */ 
/*      */   public static Date str2Date(String value)
/*      */   {
/*  131 */     if ((value == null) || (value.trim().length() == 0)) {
/*  132 */       return null;
/*      */     }
/*  134 */     SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
/*      */     try {
/*  136 */       return simpleDateFormat.parse(value.trim()); } catch (ParseException e) {
/*      */     }
/*  138 */     return null;
/*      */   }
/*      */ 
/*      */   public static Date str2Date2(String value)
/*      */   {
/*  148 */     if ((value == null) || (value.trim().length() == 0)) {
/*  149 */       return null;
/*      */     }
/*  151 */     SimpleDateFormat simpleDateFormat = new SimpleDateFormat(
/*  152 */       "yyyy-MM-dd HH:mm:ss");
/*      */     try {
/*  154 */       return simpleDateFormat.parse(value); } catch (ParseException e) {
/*      */     }
/*  156 */     return null;
/*      */   }
/*      */ 
/*      */   public static Date str2Date3(String value)
/*      */   {
/*  166 */     if ((value == null) || (value.trim().length() == 0)) {
/*  167 */       return null;
/*      */     }
/*  169 */     SimpleDateFormat simpleDateFormat = new SimpleDateFormat(
/*  170 */       "yyyyMMddHHmmss");
/*      */     try {
/*  172 */       return simpleDateFormat.parse(value); } catch (ParseException e) {
/*      */     }
/*  174 */     return null;
/*      */   }
/*      */ 
/*      */   public static Date str2Date(Object value)
/*      */   {
/*  184 */     if (value == null) {
/*  185 */       return null;
/*      */     }
/*      */ 
/*  188 */     return str2Date(value.toString());
/*      */   }
/*      */ 
/*      */   public static String date2Str(Date date)
/*      */   {
/*  197 */     if (date == null) {
/*  198 */       return "";
/*      */     }
/*  200 */     SimpleDateFormat simpleDateFormat = new SimpleDateFormat(
/*  201 */       "yyyy-MM-dd HH:mm:ss");
/*  202 */     return simpleDateFormat.format(date);
/*      */   }
/*      */ 
/*      */   public static String date2Str2(Date value)
/*      */   {
/*  211 */     if (value == null) {
/*  212 */       return "";
/*      */     }
/*  214 */     SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
/*  215 */     return simpleDateFormat.format(value);
/*      */   }
/*      */ 
/*      */   public static String date2Str3(Date date)
/*      */   {
/*  224 */     if (date == null) {
/*  225 */       return "";
/*      */     }
/*  227 */     SimpleDateFormat simpleDateFormat = new SimpleDateFormat(
/*  228 */       "yyyy-MM-dd HH:mm");
/*  229 */     return simpleDateFormat.format(date);
/*      */   }
/*      */ 
/*      */   public static String date2Str4(Date date) {
/*  233 */     if (date == null) {
/*  234 */       return "";
/*      */     }
/*  236 */     SimpleDateFormat simpleDateFormat = new SimpleDateFormat(
/*  237 */       "yyyyMMddHHmmss");
/*  238 */     return simpleDateFormat.format(date);
/*      */   }
/*      */ 
/*      */   public static Float str2Float(String value)
/*      */   {
/*  247 */     if ((value == null) || (value.trim().length() == 0))
/*  248 */       return null;
/*      */     try
/*      */     {
/*  251 */       return Float.valueOf(value.trim()); } catch (NumberFormatException e) {
/*      */     }
/*  253 */     return null;
/*      */   }
/*      */ 
/*      */   public static float str2Float(Object value)
/*      */   {
/*  263 */     if (value == null) {
/*  264 */       return 0.0F;
/*      */     }
/*  266 */     Float result = str2Float(value.toString());
/*  267 */     if (result == null) {
/*  268 */       return 0.0F;
/*      */     }
/*  270 */     return result.floatValue();
/*      */   }
/*      */ 
/*      */   public static int str2Int(String value)
/*      */   {
/*  279 */     if ((value == null) || (value.trim().length() == 0))
/*  280 */       return 0;
/*      */     try
/*      */     {
/*  283 */       return Integer.parseInt(value.trim()); } catch (NumberFormatException e) {
/*      */     }
/*  285 */     return 0;
/*      */   }
/*      */ 
/*      */   public static int str2Int(Object value)
/*      */   {
/*  295 */     if (value == null) {
/*  296 */       return 0;
/*      */     }
/*  298 */     if ((value instanceof Integer)) {
/*  299 */       return ((Integer)value).intValue();
/*      */     }
/*  301 */     if ((value instanceof BigDecimal)) {
/*  302 */       return ((BigDecimal)value).intValue();
/*      */     }
/*  304 */     if ((value instanceof Double)) {
/*  305 */       return ((Double)value).intValue();
/*      */     }
/*  307 */     if ((value instanceof Long)) {
/*  308 */       return ((Long)value).intValue();
/*      */     }
/*  310 */     return str2Int(value.toString());
/*      */   }
/*      */ 
/*      */   public static String HTMLEncode(char ch)
/*      */   {
/*  323 */     for (int j = 0; j < c.length; j++) {
/*  324 */       if (c[j] == ch) {
/*  325 */         return expansion[j];
/*      */       }
/*      */     }
/*      */ 
/*  329 */     return String.valueOf(ch);
/*      */   }
/*      */ 
/*      */   public static String HTMLEncode(String s)
/*      */   {
/*  338 */     if (s == null) {
/*  339 */       return "";
/*      */     }
/*  341 */     StringBuffer st = new StringBuffer();
/*  342 */     for (int i = 0; i < s.length(); i++) {
/*  343 */       boolean copy = true;
/*  344 */       char ch = s.charAt(i);
/*  345 */       for (int j = 0; j < c.length; j++) {
/*  346 */         if (c[j] == ch) {
/*  347 */           st.append(expansion[j]);
/*  348 */           copy = false;
/*  349 */           break;
/*      */         }
/*      */       }
/*  352 */       if (copy) {
/*  353 */         st.append(ch);
/*      */       }
/*      */     }
/*  356 */     return st.toString();
/*      */   }
/*      */ 
/*      */   public static String HTMLEncode2(String s)
/*      */   {
/*  365 */     String value = HTMLEncode(s);
/*  366 */     if ((value == null) || (value.length() == 0)) {
/*  367 */       return "";
/*      */     }
/*      */ 
/*  370 */     return value.replaceAll("(\r\n|\n)", "<br/>");
/*      */   }
/*      */ 
/*      */   public static Long getDaysBetween(Date startDate, Date endDate)
/*      */   {
/*  380 */     Calendar fromCalendar = Calendar.getInstance();
/*  381 */     fromCalendar.setTime(startDate);
/*  382 */     fromCalendar.set(11, 0);
/*  383 */     fromCalendar.set(12, 0);
/*  384 */     fromCalendar.set(13, 0);
/*  385 */     fromCalendar.set(14, 0);
/*      */ 
/*  387 */     Calendar toCalendar = Calendar.getInstance();
/*  388 */     toCalendar.setTime(endDate);
/*  389 */     toCalendar.set(11, 0);
/*  390 */     toCalendar.set(12, 0);
/*  391 */     toCalendar.set(13, 0);
/*  392 */     toCalendar.set(14, 0);
/*      */ 
/*  394 */     return Long.valueOf((toCalendar.getTime().getTime() - fromCalendar.getTime()
/*  395 */       .getTime()) / 86400000L);
/*      */   }
/*      */ 
/*      */   public static String getDateFormat(Date startDate, int step)
/*      */   {
/*  405 */     Calendar calendar = Calendar.getInstance();
/*  406 */     calendar.setTime(startDate);
/*      */ 
/*  408 */     calendar.add(5, step);
/*  409 */     return calendar.get(1) + "-" + (
/*  410 */       calendar.get(2) + 1) + "-" + 
/*  411 */       calendar.get(5);
/*      */   }
/*      */ 
/*      */   public static String getRandomString(int length)
/*      */   {
/*  420 */     String base = "abcdefghijklmnopqrstuvwxyz0123456789";
/*  421 */     Random random = new Random();
/*  422 */     StringBuffer sb = new StringBuffer();
/*  423 */     for (int i = 0; i < length; i++) {
/*  424 */       int number = random.nextInt(base.length());
/*  425 */       sb.append(base.charAt(number));
/*      */     }
/*  427 */     return sb.toString();
/*      */   }
/*      */ 
/*      */   public static String selectOptionStatus(String value, String optionValue)
/*      */   {
/*  437 */     if ((value == null) || (value.trim().length() == 0)) {
/*  438 */       return "";
/*      */     }
/*      */ 
/*  441 */     return value.equals(optionValue) ? "selected" : "";
/*      */   }
/*      */ 
/*      */   public static boolean isInArray(String[] array, String id)
/*      */   {
/*  446 */     if ((array == null) || (array.length == 0)) {
/*  447 */       return false;
/*      */     }
/*      */ 
/*  450 */     if ((id == null) || (id.length() == 0)) {
/*  451 */       return false;
/*      */     }
/*      */ 
/*  454 */     String[] arrayOfString = array; int j = array.length; for (int i = 0; i < j; i++) { String tmp = arrayOfString[i];
/*  455 */       if (id.equals(tmp)) {
/*  456 */         return true;
/*      */       }
/*      */     }
/*      */ 
/*  460 */     return false;
/*      */   }
/*      */ 
/*      */   public static boolean isInArray(List<Object> list, String id) {
/*  464 */     if ((list == null) || (list.size() == 0)) {
/*  465 */       return false;
/*      */     }
/*      */ 
/*  468 */     if ((id == null) || (id.length() == 0)) {
/*  469 */       return false;
/*      */     }
/*      */ 
/*  472 */     for (Iterator localIterator = list.iterator(); localIterator.hasNext(); ) { Object tmp = localIterator.next();
/*  473 */       if (id.equals(tmp.toString())) {
/*  474 */         return true;
/*      */       }
/*      */     }
/*      */ 
/*  478 */     return false;
/*      */   }
/*      */ 
/*      */   public static String getUserNameById(String userId, List<User> users) {
/*  482 */     if ((userId == null) || (userId.length() == 0)) {
/*  483 */       return null;
/*      */     }
/*      */ 
/*  486 */     if ((users == null) || (users.size() == 0)) {
/*  487 */       return null;
/*      */     }
/*      */ 
/*  490 */     for (User u : users) {
/*  491 */       if (userId.equals(u.userId)) {
/*  492 */         return u.name;
/*      */       }
/*      */     }
/*  495 */     return null;
/*      */   }
/*      */ 
/*      */   public static String getCustomerNameById(Integer customerId, List<Map<String, Object>> customers)
/*      */   {
/*  507 */     if ((customerId == null) || (customerId.intValue() <= 0)) {
/*  508 */       return null;
/*      */     }
/*  510 */     if ((customers == null) || (customers.size() == 0)) {
/*  511 */       return null;
/*      */     }
/*      */ 
/*  514 */     for (Map c : customers) {
/*  515 */       Integer cid = (Integer)c.get("CustomerId");
/*  516 */       if ((cid != null) && (cid.intValue() == customerId.intValue())) {
/*  517 */         return (String)c.get("Name");
/*      */       }
/*      */     }
/*  520 */     return null;
/*      */   }
/*      */ 
/*      */   public static String getCustomerUrlById(Integer customerId, List<Map<String, Object>> customers)
/*      */   {
/*  532 */     if ((customerId == null) || (customerId.intValue() <= 0)) {
/*  533 */       return "";
/*      */     }
/*  535 */     if ((customers == null) || (customers.size() == 0)) {
/*  536 */       return "";
/*      */     }
/*      */ 
/*  539 */     for (Map c : customers) {
/*  540 */       Integer cid = (Integer)c.get("CustomerId");
/*  541 */       if ((cid != null) && (cid.intValue() == customerId.intValue()))
/*      */       {
/*  543 */         Integer type = (Integer)c.get("Type");
/*      */ 
/*  545 */         String url = "";
/*  546 */         if (type.intValue() == 0)
/*  547 */           url = "company/" + cid;
/*      */         else {
/*  549 */           url = "people/" + cid;
/*      */         }
/*  551 */         return url;
/*      */       }
/*      */     }
/*  554 */     return "";
/*      */   }
/*      */ 
/*      */   public static Date lastNDays(int days) {
/*  558 */     Calendar cal = Calendar.getInstance();
/*  559 */     cal.add(5, -1 * days);
/*  560 */     cal.set(11, 0);
/*  561 */     cal.set(12, 0);
/*  562 */     cal.set(12, 0);
/*  563 */     cal.set(13, 0);
/*  564 */     return cal.getTime();
/*      */   }
/*      */ 
/*      */   public static Date lastNMonth(int month) {
/*  568 */     Calendar cal = Calendar.getInstance();
/*  569 */     cal.add(2, -1 * month);
/*  570 */     cal.set(11, 0);
/*  571 */     cal.set(12, 0);
/*  572 */     cal.set(12, 0);
/*  573 */     cal.set(13, 0);
/*  574 */     return cal.getTime();
/*      */   }
/*      */ 
/*      */   public static String getArrayValue(String[] array, int index) {
/*  578 */     if (index < 0) {
/*  579 */       return "";
/*      */     }
/*  581 */     if (array == null) {
/*  582 */       return "";
/*      */     }
/*      */ 
/*  585 */     if (array.length > index) {
/*  586 */       return array[index];
/*      */     }
/*  588 */     return "";
/*      */   }
/*      */ 
/*      */   public static String getCookieValue(Cookie[] cookies, String key)
/*      */   {
/*  599 */     if ((cookies == null) || (cookies.length == 0)) {
/*  600 */       return null;
/*      */     }
/*  602 */     if ((key == null) || (key.trim().length() == 0)) {
/*  603 */       return null;
/*      */     }
/*      */ 
/*  606 */     for (int i = 0; i < cookies.length; i++) {
/*  607 */       Cookie cookie = cookies[i];
/*  608 */       if (key.equals(cookie.getName()))
/*  609 */         return cookie.getValue();
/*      */     }
/*  611 */     return null;
/*      */   }
/*      */ 
/*      */   public static int getListIntValue(List<Map<String, Object>> result, String userId, String findKey, String valueKey)
/*      */   {
/*  616 */     return str2Int(getListValue(result, userId, findKey, valueKey));
/*      */   }
/*      */ 
/*      */   public static double getListDoubleValue(List<Map<String, Object>> result, String userId, String findKey, String valueKey)
/*      */   {
/*  621 */     Object obj = getListValue(result, userId, findKey, valueKey);
/*  622 */     if ((obj instanceof BigDecimal)) {
/*  623 */       return ((BigDecimal)obj).doubleValue();
/*      */     }
/*      */ 
/*  626 */     if ((obj instanceof Integer)) {
/*  627 */       return ((Integer)obj).doubleValue();
/*      */     }
/*  629 */     return 0.0D;
/*      */   }
/*      */ 
/*      */   private static Object getListValue(List<Map<String, Object>> result, String userId, String findKey, String valueKey)
/*      */   {
/*  634 */     if (result == null) {
/*  635 */       return Integer.valueOf(0);
/*      */     }
/*      */ 
/*  638 */     for (Map item : result) {
/*  639 */       if (userId.equals((String)item.get(findKey))) {
/*  640 */         return item.get(valueKey);
/*      */       }
/*      */     }
/*  643 */     return Integer.valueOf(0);
/*      */   }
/*      */ 
/*      */   public static int getListMaxNum(List<Map<String, Object>> result, String key) {
/*  647 */     if ((result == null) || (result.size() == 0)) {
/*  648 */       return 10;
/*      */     }
/*      */ 
/*  651 */     int max = 0;
/*  652 */     for (Map item : result) {
/*  653 */       if (str2Int(item.get(key)) > max) {
/*  654 */         max = str2Int(item.get(key));
/*      */       }
/*      */     }
/*  657 */     return (int)(max * 1.5D);
/*      */   }
/*      */ 
/*      */   public static String UEncode(String msg)
/*      */   {
/*  672 */     if ((msg == null) || (msg.trim().length() == 0)) {
/*  673 */       return "";
/*      */     }
/*      */ 
/*  676 */     StringBuffer encodeMsg = new StringBuffer();
/*  677 */     for (char ch : msg.trim().toCharArray()) {
/*  678 */       if (ch > '') {
/*  679 */         String hex = Integer.toHexString(ch);
/*  680 */         while (hex.length() < 4) {
/*  681 */           hex = "0" + hex;
/*      */         }
/*  683 */         encodeMsg.append("\\u").append(hex);
/*      */       }
/*  685 */       else if (ch == '"') {
/*  686 */         encodeMsg.append("\\").append(ch);
/*  687 */       } else if (ch == '&') {
/*  688 */         encodeMsg.append("\\&");
/*  689 */       } else if (ch == '\\') {
/*  690 */         encodeMsg.append("\\\\");
/*  691 */       } else if ((ch != '\r') && (ch != '\n'))
/*      */       {
/*  694 */         encodeMsg.append(HTMLEncode(ch));
/*      */       }
/*      */     }
/*      */ 
/*  698 */     return encodeMsg.toString();
/*      */   }
/*      */ 
/*      */   public static String UEncode2(String msg)
/*      */   {
/*  708 */     if ((msg == null) || (msg.trim().length() == 0)) {
/*  709 */       return "";
/*      */     }
/*  711 */     StringBuffer encodeMsg = new StringBuffer();
/*  712 */     for (char ch : msg.trim().toCharArray()) {
/*  713 */       if (ch > '') {
/*  714 */         String hex = Integer.toHexString(ch);
/*  715 */         while (hex.length() < 4) {
/*  716 */           hex = "0" + hex;
/*      */         }
/*  718 */         encodeMsg.append("\\u").append(hex);
/*      */       } else {
/*  720 */         encodeMsg.append(ch);
/*      */       }
/*      */     }
/*  723 */     return encodeMsg.toString();
/*      */   }
/*      */ 
/*      */   public static void main(String[] args) throws ParseException
/*      */   {
/*  728 */     String t = "α";
/*  729 */     System.out.println(UEncode2(t));
/*      */   }
/*      */ 
/*      */   public static boolean isToday(Date date)
/*      */   {
/*  753 */     if (date == null) {
/*  754 */       return false;
/*      */     }
/*  756 */     Calendar calendar = new GregorianCalendar();
/*  757 */     calendar.setTime(date);
/*  758 */     Calendar today = new GregorianCalendar();
/*  759 */     today.setTime(new Date());
/*  760 */     if ((calendar.get(1) == today.get(1)) && 
/*  761 */       (calendar.get(2) == today.get(2)) && 
/*  762 */       (calendar.get(5) == today.get(5))) {
/*  763 */       return true;
/*      */     }
/*  765 */     return false;
/*      */   }
/*      */ 
/*      */   public static boolean isTomorrow(Date date) {
/*  769 */     if (date == null) {
/*  770 */       return false;
/*      */     }
/*  772 */     Calendar calendar = new GregorianCalendar();
/*  773 */     calendar.setTime(date);
/*  774 */     Calendar today = new GregorianCalendar();
/*  775 */     today.setTime(new Date());
/*  776 */     if ((calendar.get(1) == today.get(1)) && 
/*  777 */       (calendar.get(2) == today.get(2)) && 
/*  778 */       (calendar.get(5) == today.get(5) + 1)) {
/*  779 */       return true;
/*      */     }
/*  781 */     return false;
/*      */   }
/*      */ 
/*      */   public static boolean isThisWeek(Date date)
/*      */   {
/*  790 */     if (date == null) {
/*  791 */       return false;
/*      */     }
/*      */ 
/*  794 */     Calendar calendar = new GregorianCalendar();
/*  795 */     calendar.setTime(new Date());
/*  796 */     calendar.setFirstDayOfWeek(2);
/*      */ 
/*  798 */     int weekday = calendar.get(7) - 1;
/*  799 */     if (weekday == 0) {
/*  800 */       weekday = 7;
/*      */     }
/*  802 */     calendar.add(5, 7 - weekday);
/*  803 */     calendar.set(11, 23);
/*  804 */     calendar.set(12, 59);
/*  805 */     calendar.set(13, 59);
/*      */ 
/*  807 */     return calendar.getTimeInMillis() >= date.getTime();
/*      */   }
/*      */ 
/*      */   public static boolean isNextWeek(Date date) {
/*  811 */     if (date == null) {
/*  812 */       return false;
/*      */     }
/*      */ 
/*  815 */     Calendar calendar = new GregorianCalendar();
/*  816 */     calendar.setTime(new Date());
/*  817 */     calendar.setFirstDayOfWeek(2);
/*      */ 
/*  819 */     int weekday = calendar.get(7) - 1;
/*  820 */     if (weekday == 0) {
/*  821 */       weekday = 7;
/*      */     }
/*  823 */     calendar.add(5, 14 - weekday);
/*  824 */     calendar.set(11, 23);
/*  825 */     calendar.set(12, 59);
/*  826 */     calendar.set(13, 59);
/*      */ 
/*  828 */     return calendar.getTimeInMillis() >= date.getTime();
/*      */   }
/*      */ 
/*      */   public static Map<String, String> parseParameters(String filter, List<String[]> filters)
/*      */   {
/*  833 */     if ((filter == null) || (filter.trim().length() == 0)) {
/*  834 */       return null;
/*      */     }
/*      */     try
/*      */     {
/*  838 */       filter = URLDecoder.decode(filter, "UTF-8");
/*      */     } catch (UnsupportedEncodingException e) {
/*  840 */       return null;
/*      */     }
/*      */ 
/*  843 */     Map parameters = new HashMap();
/*      */ 
/*  845 */     String[] split = filter.split("&");
/*  846 */     for (String tmp : split)
/*  847 */       if (tmp.trim().length() != 0)
/*      */       {
/*  850 */         String[] arr = tmp.trim().split("=");
/*  851 */         if (arr.length == 2)
/*      */         {
/*  855 */           String key = arr[0].trim();
/*      */           try
/*      */           {
                    String value;
/*  858 */             value = URLDecoder.decode(arr[1].trim(), "UTF-8");
/*      */           }
/*      */           catch (UnsupportedEncodingException e)
/*      */           {
/*      */
/*  860 */             continue;
/*      */           }
/*      */           String value = "";
/*  862 */           parameters.put(key, value);
/*      */ 
/*  864 */           if (key.contains("_"))
/*      */           {
/*  867 */             String[] splitValue = key.split("_");
/*  868 */             if (splitValue.length == 3)
/*      */             {
/*  871 */               String[] filterItem = new String[3];
/*  872 */               filterItem[0] = splitValue[0];
/*  873 */               filterItem[1] = splitValue[1];
/*  874 */               filterItem[2] = value;
/*  875 */               filters.add(filterItem);
/*      */             }
/*      */           }
/*      */         }
/*      */       }
/*  878 */     return parameters;
/*      */   }
/*      */ 
/*      */   public static List<String> readSQL(String sqlFilePath) {
/*  882 */     List sqls = new ArrayList();
/*      */ 
/*  884 */     File sqlFile = new File(sqlFilePath);
/*      */     try {
/*  886 */       FileReader fr = new FileReader(sqlFile);
/*  887 */       BufferedReader in = new BufferedReader(fr);
/*      */ 
/*  889 */       StringBuffer sqlLine = new StringBuffer();
/*      */       try {
/*  891 */         boolean isTrigger = false;
/*      */         String line;
/*  892 */         while ((line = in.readLine()) != null)
/*      */         {
/*  893 */           if (line.length() != 0)
/*      */           {
/*  897 */             if (line.contains("CREATE TRIGGER")) {
/*  898 */               isTrigger = true;
/*      */             }
/*      */ 
/*  902 */             if (line.endsWith("END TRIGGER")) {
/*  903 */               isTrigger = false;
/*  904 */               sqls.add(sqlLine.toString());
/*  905 */               sqlLine.setLength(0);
/*      */             }
/*      */             else
/*      */             {
/*  909 */               sqlLine.append(line);
/*  910 */               if ((line.endsWith(";")) && (!isTrigger)) {
/*  911 */                 sqls.add(sqlLine.toString());
/*  912 */                 sqlLine.setLength(0);
/*      */               }
/*      */             }
/*      */           }
/*      */         }
/*  915 */         in.close();
/*  916 */         fr.close();
/*      */       } catch (IOException e) {
/*  918 */         e.printStackTrace();
/*      */       }
/*      */     } catch (FileNotFoundException e) {
/*  921 */       e.printStackTrace();
/*      */     }
/*      */ 
/*  924 */     return sqls;
/*      */   }
/*      */ 
/*      */   public static boolean isImageFile(String extName, byte[] b)
/*      */   {
/*  934 */     if ((extName == null) || (extName.length() == 0)) {
/*  935 */       return false;
/*      */     }
/*      */ 
/*  938 */     if ((b == null) || (b.length == 0)) {
/*  939 */       return false;
/*      */     }
/*  941 */     if ((!".jpg".equalsIgnoreCase(extName)) && 
/*  942 */       (!".gif".equalsIgnoreCase(extName)) && 
/*  943 */       (!".png".equalsIgnoreCase(extName))) {
/*  944 */       logger.warn("extName is not image");
/*  945 */       return false;
/*      */     }
/*      */     try
/*      */     {
/*  949 */       String mimeType = Magic.getMagicMatch(b).getMimeType();
/*  950 */       if (mimeType == null) {
/*  951 */         logger.warn("mimeType is null");
/*  952 */         return false;
/*      */       }
/*  954 */       if (mimeType.startsWith("image")) {
/*  955 */         return true;
/*      */       }
/*  957 */       logger.warn("mimeType is " + mimeType);
/*      */     } catch (MagicParseException e) {
/*  959 */       logger.warn(e);
/*      */     } catch (MagicMatchNotFoundException e) {
/*  961 */       logger.warn(e);
/*      */     } catch (MagicException e) {
/*  963 */       logger.warn(e);
/*      */     } catch (NoClassDefFoundError e) {
/*  965 */       logger.warn(e);
/*      */     }
/*      */ 
/*  968 */     return false;
/*      */   }
/*      */ 
/*      */   public static boolean isDigital(String match) {
/*  972 */     if ((match == null) || (match.length() == 0)) {
/*  973 */       return false;
/*      */     }
/*      */ 
/*  976 */     String reg = "^[a-zA-Z][a-zA-Z0-9_]{1,20}$";
/*  977 */     Pattern p = Pattern.compile(reg);
/*  978 */     Matcher m = p.matcher(match);
/*  979 */     return m.matches();
/*      */   }
/*      */ 
/*      */   public static Date getTomorrowMorning2am()
/*      */   {
/*  994 */     Calendar tomorrow = new GregorianCalendar();
/*  995 */     tomorrow.add(5, 1);
/*  996 */     Calendar result = new GregorianCalendar(tomorrow.get(1), 
/*  997 */       tomorrow.get(2), tomorrow.get(5), 
/*  998 */       2, 0);
/*  999 */     return result.getTime();
/*      */   }
/*      */ 
/*      */   public static int getThisYear()
/*      */   {
/* 1008 */     Calendar today = new GregorianCalendar();
/* 1009 */     return today.get(1);
/*      */   }
/*      */ 
/*      */   public static Date getTomorrowMorning3am()
/*      */   {
/* 1018 */     Calendar tomorrow = new GregorianCalendar();
/* 1019 */     tomorrow.add(5, 1);
/* 1020 */     Calendar result = new GregorianCalendar(tomorrow.get(1), 
/* 1021 */       tomorrow.get(2), tomorrow.get(5), 
/* 1022 */       3, 0);
/* 1023 */     return result.getTime();
/*      */   }
/*      */ 
/*      */   public static Date getTomorrowMorning4am()
/*      */   {
/* 1032 */     Calendar tomorrow = new GregorianCalendar();
/* 1033 */     tomorrow.add(5, 1);
/* 1034 */     Calendar result = new GregorianCalendar(tomorrow.get(1), 
/* 1035 */       tomorrow.get(2), tomorrow.get(5), 
/* 1036 */       4, 0);
/* 1037 */     return result.getTime();
/*      */   }
/*      */ 
/*      */   public static String getFileSize(String s) {
/*      */     try {
/* 1042 */       int size = str2Int(s);
/* 1043 */       int fileSize = size / 1024;
/* 1044 */       if (fileSize < 1024) {
/* 1045 */         return fileSize + " Bytes";
/*      */       }
/* 1047 */       if (fileSize < 1048576) {
/* 1048 */         fileSize = size / 1048576;
/* 1049 */         return fileSize + " MB";
/*      */       }
/* 1051 */       fileSize = size / 1073741824;
/* 1052 */       return fileSize + " G"; } catch (NumberFormatException e) {
/*      */     }
/* 1054 */     return "0 M";
/*      */   }
/*      */ 
/*      */   public static ExtInfo getExtInfo(List<ExtInfo> extInfos, int id)
/*      */   {
/* 1059 */     if ((extInfos == null) || (extInfos.size() == 0)) {
/* 1060 */       return null;
/*      */     }
/*      */ 
/* 1063 */     for (ExtInfo item : extInfos) {
/* 1064 */       if (item.type == id) {
/* 1065 */         return item;
/*      */       }
/*      */     }
/* 1068 */     return null;
/*      */   }
/*      */ 
/*      */   public static boolean isNumeric(String str) {
/* 1072 */     if ((str == null) || (str.trim().length() == 0)) {
/* 1073 */       return false;
/*      */     }
/* 1075 */     int count = 0;
/* 1076 */     for (int i = 0; i < str.length(); i++) {
/* 1077 */       int chr = str.charAt(i);
/* 1078 */       if (chr == 46) {
/* 1079 */         if (i == 0) {
/* 1080 */           return false;
/*      */         }
/* 1082 */         count++;
/*      */       }
/* 1086 */       else if ((chr < 48) || (chr > 57)) {
/* 1087 */         return false;
/*      */       }
/*      */     }
/*      */ 
/* 1091 */     if (count > 1) {
/* 1092 */       return false;
/*      */     }
/* 1094 */     return true;
/*      */   }
/*      */ 
/*      */   public static boolean isImageFileName(String fileName) {
/* 1098 */     if ((fileName == null) || (fileName.trim().length() == 0)) {
/* 1099 */       return false;
/*      */     }
/* 1101 */     if (("png".equals(fileName)) || ("gif".equals(fileName)) || 
/* 1102 */       ("jpg".equals(fileName))) {
/* 1103 */       return true;
/*      */     }
/*      */ 
/* 1106 */     return false;
/*      */   }
/*      */ 
/*      */   public static User getUser(List<User> users, String userId)
/*      */   {
/* 1118 */     if ((userId == null) || (userId.trim().length() == 0)) {
/* 1119 */       return null;
/*      */     }
/* 1121 */     if ((users == null) || (users.size() == 0)) {
/* 1122 */       return null;
/*      */     }
/*      */ 
/* 1125 */     for (User u : users) {
/* 1126 */       if (u.userId.equals(userId.trim())) {
/* 1127 */         return u;
/*      */       }
/*      */     }
/* 1130 */     return null;
/*      */   }
/*      */ 
/*      */   public static Group getGroup(List<Group> groups, String groupId)
/*      */   {
/* 1141 */     if ((groupId == null) || (groupId.trim().length() == 0)) {
/* 1142 */       return null;
/*      */     }
/* 1144 */     if ((groups == null) || (groups.size() == 0)) {
/* 1145 */       return null;
/*      */     }
/*      */ 
/* 1148 */     for (Group g : groups) {
/* 1149 */       if (g.getId() == Integer.parseInt(groupId)) {
/* 1150 */         return g;
/*      */       }
/*      */     }
/* 1153 */     return null;
/*      */   }
/*      */ 
/*      */   public static Date getDueDate(int dueDate)
/*      */   {
/* 1164 */     if (dueDate == 1) {
/* 1165 */       return new Date();
/*      */     }
/*      */ 
/* 1169 */     if (dueDate == 2) {
/* 1170 */       Calendar today = Calendar.getInstance();
/* 1171 */       today.add(5, 1);
/* 1172 */       return today.getTime();
/*      */     }
/*      */ 
/* 1176 */     if (dueDate == 3) {
/* 1177 */       Calendar today = Calendar.getInstance();
/* 1178 */       int day = today.get(7);
/* 1179 */       int step = 7 - day;
/* 1180 */       if (step == 7) {
/* 1181 */         return today.getTime();
/*      */       }
/*      */ 
/* 1184 */       today.add(5, step);
/* 1185 */       return today.getTime();
/*      */     }
/*      */ 
/* 1189 */     if (dueDate == 4) {
/* 1190 */       Calendar today = Calendar.getInstance();
/* 1191 */       int day = today.get(7);
/* 1192 */       int step = 7 - day;
/* 1193 */       if (step != 7) {
/* 1194 */         step += 7;
/*      */       }
/* 1196 */       today.add(5, step);
/* 1197 */       return today.getTime();
/*      */     }
/*      */ 
/* 1200 */     return null;
/*      */   }
/*      */ 
/*      */   public static String random(int len)
/*      */   {
/* 1210 */     StringBuffer random = new StringBuffer();
/* 1211 */     for (int i = 0; i < len; i++) {
/* 1212 */       random.append(ranInt(0, 9));
/*      */     }
/* 1214 */     return random.toString();
/*      */   }
/*      */ 
/*      */   private static int ranInt(int min, int max) {
/* 1218 */     Random rand = new Random();
/* 1219 */     return rand.nextInt(max - min + 1) + min;
/*      */   }
/*      */ 
/*      */   public static String listToString(List<String> list)
/*      */   {
/* 1226 */     StringBuffer v = new StringBuffer();
/* 1227 */     for (String s : list) {
/* 1228 */       if (v.length() > 0) {
/* 1229 */         v.append(",");
/*      */       }
/* 1231 */       v.append(s);
/*      */     }
/* 1233 */     return v.toString();
/*      */   }
/*      */ 
/*      */   public static String showMaxLen(String msg, int len)
/*      */   {
/* 1244 */     if ((msg == null) || (msg.trim().length() == 0)) {
/* 1245 */       return "";
/*      */     }
/*      */ 
/* 1248 */     if (len <= 0) {
/* 1249 */       return msg;
/*      */     }
/* 1251 */     if (msg.length() <= len) {
/* 1252 */       return msg;
/*      */     }
/*      */ 
/* 1255 */     return msg.substring(0, len) + "...";
/*      */   }
/*      */ 
/*      */   public static String getStringWithQuotes(String message)
/*      */   {
/* 1265 */     if ((message == null) || (message.trim().length() == 0)) {
/* 1266 */       return "";
/*      */     }
/*      */ 
/* 1269 */     StringBuffer v = new StringBuffer();
/* 1270 */     for (String item : message.split(",")) {
/* 1271 */       if ((item != null) && (item.trim().length() != 0))
/*      */       {
/* 1274 */         if (v.length() > 0) {
/* 1275 */           v.append(",");
/*      */         }
/* 1277 */         v.append("'").append(item).append("'");
/*      */       }
/*      */     }
/* 1280 */     return v.toString();
/*      */   }
/*      */ 
/*      */   public static String getJSONStringValue(JSONObject json, String key)
/*      */   {
/* 1291 */     if (json == null) {
/* 1292 */       return null;
/*      */     }
/* 1294 */     if ((key == null) || (key.trim().length() == 0)) {
/* 1295 */       return null;
/*      */     }
/*      */ 
/* 1298 */     if (!json.has(key))
/* 1299 */       return null;
/*      */     try
/*      */     {
/* 1302 */       return json.getString(key); } catch (JSONException e) {
/*      */     }
/* 1304 */     return null;
/*      */   }
/*      */ 
/*      */   public static boolean getJSONBooleanValue(JSONObject json, String key)
/*      */   {
/* 1316 */     if (json == null) {
/* 1317 */       return false;
/*      */     }
/* 1319 */     if ((key == null) || (key.trim().length() == 0))
/* 1320 */       return false;
/*      */     try
/*      */     {
/* 1323 */       return json.getBoolean(key); } catch (JSONException e) {
/*      */     }
/* 1325 */     return false;
/*      */   }
/*      */ 
/*      */   public static int getJSONIntValue(JSONObject json, String key)
/*      */   {
/*      */     try
/*      */     {
/* 1338 */       return json.getInt(key); } catch (JSONException e) {
/*      */     }
/* 1340 */     return -1;
/*      */   }
/*      */ 
/*      */   public static String getLocalIPAddress()
/*      */   {
/*      */     try
/*      */     {
/* 1351 */       InetAddress ip = InetAddress.getLocalHost();
/* 1352 */       return ip.getHostAddress();
/*      */     }
/*      */     catch (UnknownHostException e) {
/* 1355 */       logger.warn("get ip address failed", e);
/*      */     }
/* 1357 */     return null;
/*      */   }
/*      */ 
/*      */   public static String getClientIpAddr(HttpServletRequest request)
/*      */   {
/* 1367 */     String ip = request.getHeader("X-Real-IP");
/* 1368 */     if ((ip == null) || (ip.length() == 0) || ("unknown".equalsIgnoreCase(ip))) {
/* 1369 */       ip = request.getHeader("X-Forwarded-For");
/*      */     }
/* 1371 */     if ((ip == null) || (ip.length() == 0) || ("unknown".equalsIgnoreCase(ip))) {
/* 1372 */       ip = request.getHeader("Proxy-Client-IP");
/*      */     }
/* 1374 */     if ((ip == null) || (ip.length() == 0) || ("unknown".equalsIgnoreCase(ip))) {
/* 1375 */       ip = request.getHeader("WL-Proxy-Client-IP");
/*      */     }
/* 1377 */     if ((ip == null) || (ip.length() == 0) || ("unknown".equalsIgnoreCase(ip))) {
/* 1378 */       ip = request.getHeader("HTTP_CLIENT_IP");
/*      */     }
/* 1380 */     if ((ip == null) || (ip.length() == 0) || ("unknown".equalsIgnoreCase(ip))) {
/* 1381 */       ip = request.getHeader("HTTP_X_FORWARDED_FOR");
/*      */     }
/* 1383 */     if ((ip == null) || (ip.length() == 0) || ("unknown".equalsIgnoreCase(ip))) {
/* 1384 */       ip = request.getRemoteAddr();
/*      */     }
/* 1386 */     return ip;
/*      */   }
/*      */ 
/*      */   public static String getEncryptionData(String key)
/*      */   {
/* 1398 */     SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHH");
/* 1399 */     String date = simpleDateFormat.format(new Date());
/*      */ 
/* 1401 */     return MD5.getMD5(key + MD5.getMD5(date));
/*      */   }
/*      */ 
/*      */   public static boolean checkCode(HttpServletRequest request, String code)
/*      */   {
/* 1412 */     if ((code == null) || (code.trim().length() == 0)) {
/* 1413 */       return false;
/*      */     }
/*      */ 
/* 1416 */     HttpSession session = request.getSession(false);
/* 1417 */     if (session == null) {
/* 1418 */       return false;
/*      */     }
/*      */ 
/* 1421 */     String s = (String)session
/* 1422 */       .getAttribute("KAPTCHA_SESSION_KEY");
/*      */ 
/* 1424 */     session.setAttribute(
/* 1425 */       "KAPTCHA_SESSION_KEY", 
/* 1426 */       getEncryptionData("qikebao"));
/*      */ 
/* 1428 */     boolean flag = code.equals(s);
/* 1429 */     if (!flag) {
/* 1430 */       logger.warn("验证码输入错误：" + code + " / image code: " + s);
/*      */     }
/* 1432 */     return flag;
/*      */   }
/*      */ 
/*      */   public static String getFieldName(int id, List<Map<String, Object>> data)
/*      */   {
/* 1443 */     if ((data == null) || (data.size() == 0)) {
/* 1444 */       return "";
/*      */     }
/*      */ 
/* 1447 */     for (Map item : data) {
/* 1448 */       if (str2Int(item.get("CustomerFieldId")) == id) {
/* 1449 */         return (String)item.get("CustomerFieldName");
/*      */       }
/*      */     }
/* 1452 */     return "";
/*      */   }
/*      */ }

/* Location:           C:\E\referenceProject\CRM参考\qikebao\WEB-INF\lib\qikebao.jar
 * Qualified Name:     com.newcrm.util.Util
 * JD-Core Version:    0.6.1
 */